<?xml version="1.0" encoding="UTF-8"?>

<project> 
  <modelVersion>4.0.0</modelVersion>  
  <groupId>${groupId}</groupId>  
  <artifactId>${artifactId}</artifactId>  
  <version>0.9-SNAPSHOT</version>  
  <packaging>dotnet-exe</packaging>  
  <build> 
    <!-- ****************************************************************
			Required. Repoints the source and output dirs to the 
	       **************************************************************** -->  
    <outputDirectory>target/dotnet-assembly</outputDirectory>  
    <testOutputDirectory>target/test-dotnet-assembly</testOutputDirectory>  
    <sourceDirectory>src/main/csharp</sourceDirectory>  
    <testSourceDirectory>src/test/csharp</testSourceDirectory>  
    <!-- ****************************************************************
		  			COMPILER PLUGIN
		  Required, this is the api around the compilers.
		  **************************************************************** -->  
    <plugins> 
      <plugin> 
        <artifactId>maven-compiler-plugin</artifactId>  
        <version>2.0</version>  
        <extensions>true</extensions>  
        <!--  these are general config options across the CSharp compiler -->  
        <configuration> 
          <compilerId>csharp</compilerId>  
          <fork>true</fork>  
          <!--  default executable = csc specify mcs to compile with mono -->  
          <!--  executable>csc</executable -->  
          <!--  compiler arguments see docco for full list -->  
          <compilerArguments> 
            <doc>true</doc>  
            <!--  example of ignoring warnings -->  
            <!--  nowarn>1591</nowarn -->  
            <!-- the includes elements below are required --> 
          </compilerArguments>  
          <includes> 
            <include>**/*.cs</include> 
          </includes> 
        </configuration>  
        <!--  executions need to be specified for the dotnet plugin 
				(is slightly ugly, hopefully can get rid of in future -->  
        <executions> 
          <!--  this configuration is required to tell the compiler what is different about
						  the main compile as apposed to the test compile -->  
          <execution> 
            <id>compile</id>  
            <phase>compile</phase>  
            <goals> 
              <goal>compile</goal> 
            </goals>  
            <configuration> 
              <compilerArguments> 
                <target>exe</target>  
                <!--  mainClass>MyNamespace.MyStaticMainClass</mainClass --> 
              </compilerArguments> 
            </configuration> 
          </execution>  
          <!--  this configuration is required to tell the compiler what is different about
						  the main compile as apposed to the test compile -->  
          <execution> 
            <id>testCompile</id>  
            <phase>test-compile</phase>  
            <goals> 
              <goal>testCompile</goal> 
            </goals>  
            <configuration> 
              <compilerArguments> 
                <!--  the library element is required for test compile -->  
                <target>library</target>  
                <!--  the out element is required for the test compile -->  
                <out>unit-tests.dll</out> 
              </compilerArguments> 
            </configuration> 
          </execution> 
        </executions>  
        <!-- ****************************************************************
		  			CSHARP COMPILER DEPENDENCY
		  Required as this is the compiler maven uses to do the compile.
		  **************************************************************** -->  
        <dependencies> 
          <dependency> 
            <groupId>org.codehaus.plexus</groupId>  
            <artifactId>plexus-compiler-csharp</artifactId>  
            <version>1.6-SNAPSHOT</version> 
          </dependency> 
        </dependencies> 
      </plugin>  
      <!-- ****************************************************************
		  			ASSEMBLY PLUGIN
		  Required as has a bunch of shared functionality across the dotnet
		  plugins.
		  **************************************************************** -->  
      <!-- ****************************************************************
		  			CSHARP PLUGIN
		  Required as defines custom build cycles
		  **************************************************************** -->  
      <plugin> 
        <groupId>org.apache.maven.plugins</groupId>  
        <artifactId>maven-csharp-lifecycle-plugin</artifactId>  
        <version>1.0-SNAPSHOT</version>  
        <extensions>true</extensions> 
      </plugin>  
      <!-- ****************************************************************
		  			NUNIT PLUGIN
		  If your application requires a .config file uncomment the configuration element
		  below 
		  **************************************************************** -->  
      <plugin> 
        <groupId>org.apache.maven.plugins</groupId>  
        <artifactId>maven-nunit-plugin</artifactId>  
        <version>1.0-SNAPSHOT</version>  
        <!-- configuration>
	          <configFile>src/main/resources/App.config</configFile>
	        </configuration --> 
      </plugin>  
      <!-- ****************************************************************
		  			VISUAL STUDIO PLUGIN
		  if you wish to use the Visual Studio Plugin, uncomment the lines below
		  and add your own set of includes as necessary
		  **************************************************************** -->  
      <!--  plugin>
	        <groupId>org.apache.maven.plugins</groupId>
	        <artifactId>maven-vstudio-plugin</artifactId>
	        <configuration>
	          <frameworkHome>${dotnet.home}</frameworkHome>
	          <includes>
				<include>**/*.aspx</include>
				<include>**/*.resx</include>
				<include>**/*.cs</include>
	          </includes>
	          
	          <references>
	          	<reference>
	          		<path>System.dll</path>
	          		<gac>true</gac>
	          	</reference>
	          </references>
	        </configuration>
	      </plugin --> 
    </plugins> 
  </build>  
  <dependencies> 
    <dependency> 
      <groupId>nunit</groupId>  
      <artifactId>nunit-console</artifactId>  
      <version>2.2</version>  
      <type>dotnet-exe</type>  
      <scope>test</scope> 
    </dependency> 
  </dependencies> 
</project>
